/*
 * @Author: Colin Dai
 * @Date: 2022-04-30 16:13:32
 * @LastEditors: Colin Dai
 * @LastEditTime: 2022-05-03 19:21:28
 * @FilePath: \intelligent-trash\src\servo_ctrl.ino
 * @Description: 舵机控制实现
 * dailianzheng@163.com
 * Copyright (c) 2022 by Colin.Dai, All Rights Reserved. 
 */


#include <Servo.h>
#include "servo_ctrl.h"

/**
 * @brief 全局变量
 * 
 */
//定义舵机控制的针脚
#define SERVO_PIN 10


Servo myservo;  // 定义Servo对象来控制
int pos = 0;    // 角度存储变量

/**
 * @brief 初始化舵机
 * @param {*}
 * @return {*}
 */
void init_servo()
{
     myservo.attach(SERVO_PIN);  // 控制线连接数字9
     myservo.write(0);   
     Serial.println("init_servo...");
}

/**
 * @brief 测试舵机
 * @param {*}
 * @return {*}
 */
void test_servo()
{
  Serial.println("test_servo...");
  for (pos = 0; pos <= 180; pos ++) { // 0°到180°
    // in steps of 1 degree
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
  for (pos = 180; pos >= 0; pos --) { // 从180°到0°
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
}

/**
 * @brief 调节舵机角度
 * @param {int} position
 * @return {*}
 */
void adjust_servo(int position)
{
    Serial.println("adjust_servo...");

    myservo.write(position);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
}
